﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CMS.Web.Engine
{
    public interface IWidget
    {
        int ID { get; set; }
        string Zone { get; set; }
        int Order { get; set; }
        string PartialViewName { get; set; }
        IWidgetModel Model { get; set; }
        IWidgetSettings Settings { get; set; }
        void Initialize(string settings, IEnumerable<string> ids);        
        void ProcessPost();
    }

    public interface IModel
    {
        List<Exception> Errors { get; }
    }

    public interface IWidgetSettings
    {
        bool Visible { get; set; }
    }

    public interface IWidgetModel : IModel
    {
        int Widget { get; set; }
        string Prefix { get; }       
    }

    public interface IPageEntity
    {
        int ID { get; set; }
        int Host { get; set; }
        string Text { get; set; }
        string ViewName { get; set; }
        IEnumerable<string> Aliases { get; set; }
        IPageModel Model { get; set; }
    }

    public interface IPageModel
    {
        int ID { get; set; }
        List<IWidget> Widgets { get; set; }
    }

    public interface IHostEntity
    {
        int ID { get; set; }
        string Header { get; set; }
        int Port { get; set; }
    }

    public interface IUserEntity
    {
        int ID { get; set; }
        string Login { get; set; }
        string Password { get; set; }
        string DisplayName { get; set; }
    }
}
